public class NM {
    //算法题：给定一个数组（其中数组元素都是由数字0和1构成）；
    //和一个整数k;
    //要求求出最大的连续1的个数；
    //其中k表示：数组中元素0可以变成1的最大个数；
    //根据要求既然要求最长的连续1的个数，所以就应该将k个0都变成1；
    //进而推出解决办法：
    // 在判定只要0变成1的个数不超过k的前提下进行找到最长的连续1的个数；
    public static int fun(int[] array,int k){
        int len=0;
        int count=0;//进行统计获取到的0的个数
        for(int left=0,right=0;right< array.length;right++){
            if(array[right]==0){
                count++;
            }//进窗口操作；
            while(count>k){
                if(array[left++]==0){
                    count--;//出窗口操作；
                }
                len=Math.max(len,right-left+1);//更新结果操作；
            }
        }
        return len;
    }
    public static void main(String[] args){
        int[] array={1,1,1,0,0,0,1,1,1,1,0};
        int k=2;
        int len=fun(array,k);
        System.out.println(len);

    }
}
